//
// Created by luolijun on 2021/11/1.
//
#include "FacadePrototypeProviderBuiltin.h"

#include "FacadeActivity.h"
#include "FacadeActor.h"
#include "FacadeAlternative.h"
#include "FacadeArtifact.h"
#include "FacadeBoundary.h"
#include "FacadeClass.h"
#include "FacadeComponent.h"
#include "FacadeConstrant.h"
#include "FacadeControl.h"
#include "FacadeDepartment.h"
#include "FacadeEntity.h"
#include "FacadeInterface.h"
#include "FacadeNode.h"
#include "FacadeNodeInstance.h"
#include "FacadeNote.h"
#include "FacadeObject.h"
#include "FacadePackage.h"
#include "FacadeState.h"
#include "FacadeUserCase.h"

namespace falcon {

void FacadePrototypeProviderBuiltin::Setup(FacadePrototypeRepo& repo) {
    repo.registerPrototype("类图", new FacadeClass());
    repo.registerPrototype("类图", new FacadeInterface());
    repo.registerPrototype("公共", new FacadeNote());
    repo.registerPrototype("公共", new FacadeAlternative());
    repo.registerPrototype("公共", new FacadeBoundary());
    repo.registerPrototype("部署图", new FacadeArtifact());
    repo.registerPrototype("部署图", new FacadeConstrant());
    repo.registerPrototype("部署图", new FacadeDepartment());
    repo.registerPrototype("部署图", new FacadeNode());
    repo.registerPrototype("部署图", new FacadeNodeInstance());
    repo.registerPrototype("组件图", new FacadeComponent());
    repo.registerPrototype("组件图", new FacadeControl());
    repo.registerPrototype("组件图", new FacadeEntity());
    repo.registerPrototype("组件图", new FacadePackage());
    repo.registerPrototype("用例图", new FacadeUserCase());
    repo.registerPrototype("用例图", new FacadeActor());
    repo.registerPrototype("活动图", new FacadeActivity());
    repo.registerPrototype("对象图", new FacadeObject());
    repo.registerPrototype("状态图", new FacadeState());
    //    公共
    //
    //    类图
    //    组件图
    //    对象图
    //    轮廓图
    //    组合结构图
    //    部署图包图
    //
    //    用例图
    //    活动图
    //    状态机图
    //    序列图
    //    时序图
    //    交互概述图
    //    通信图
}

} // namespace falcon